python小波变换绘制频谱图和等线图 您所在的位置:网站首页 Python小波分析 气象 python小波变换绘制频谱图和等线图

python小波变换绘制频谱图和等线图

2024-06-16 12:37| 来源: 网络整理| 查看: 265

目录 Example 小波分析简介代码实验结果 Example 等值线图代码实验结果 参考资料

Example 小波分析 简介

一般情况下,小波周期图水平轴对应原来时间序列的时间,垂直轴代表变化的周期,颜色代表变化周期的强度。该图里,黄色代表变化周期的高强度。

在最上面的图中表示 2 个变量的时间序列(Alongstream Velocity、Cross-Stream Velocity),下面的 2 张图中为该 2 个变量的小波分析,随着时间序列的变化,变化周期的强度变化。 在这里插入图片描述

代码 from __future__ import division import numpy from matplotlib import pyplot import pycwt as wavelet from pycwt.helpers import find url = 'http://paos.colorado.edu/research/wavelets/wave_idl/nino3sst.txt' dat = numpy.genfromtxt(url, skip_header=19) title = 'NINO3 Sea Surface Temperature' label = 'NINO3 SST' units = 'degC' t0 = 1871.0 dt = 0.25 # 获取NINO数据 # We also create a time array in years. N = dat.size t = numpy.arange(0, N) * dt + t0 p = numpy.polyfit(t - t0, dat, 1) dat_notrend = dat - numpy.polyval(p, t - t0) std = dat_notrend.std() # Standard deviation var = std ** 2 # Variance dat_norm = dat_notrend / std # Normalized dataset mother = wavelet.Morlet(6) s0 = 2 * dt # Starting scale, in this case 2 * 0.25 years = 6 months dj = 1 / 12 # Twelve sub-octaves per octaves J = 7 / dj # Seven powers of two with dj sub-octaves alpha, _, _ = wavelet.ar1(dat) # Lag-1 autocorrelation for red noise wave, scales, freqs, coi, fft, fftfreqs = wavelet.cwt(dat_norm, dt, dj, s0, J, mother) iwave = wavelet.icwt(wave, scales, dt, dj, mother) * std power = (numpy.abs(wave)) ** 2 fft_power = numpy.abs(fft) ** 2 period = 1 / freqs signif, fft_theor = wavelet.significance(1.0, dt, scales, 0, alpha, significance_level=0.95, wavelet=mother) sig95 = numpy.ones([1, N]) * signif[:, None] sig95 = power / sig95 glbl_power = power.mean(axis=1) dof = N - scales # Correction for padding at edges glbl_signif, tmp = wavelet.significance(var, dt, scales, 1, alpha, significance_level=0.95, dof=dof, wavelet=mother) sel = find((period >= 2) & (period


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有